<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // ===比较类型和值，==只比较值

        // 双等号
        // 1.如果两个值类型相同，再进行三个等号(===)的比较
        var a = 1
        var b = 2
        console.log(a==b) // false
        // 2.如果两个值类型不同，也有可能相等，需根据以下规则进行类型转换在比较：
        // 2.1如果一个是null，一个是undefined，那么相等
        var c = null
        var d = undefined
        console.log(c==d) // true

        // 2.2如果一个是字符串，一个是数值，把字符串转换成数值之后再进行比较
        // 对String类型调用parseInt()和parseFloat()两个转换函数
        // 只有对String类型调用这些方法，这两个函数才能正确运行。对其他类型返回的都是NaN
        var e = 'zhangfan'
        console.log(typeof e) // string
        console.log(parseInt(e)) // NaN 
        var f = 123
        console.log(e==f) // false

        // 三等号
        // 1.如果类型不同，就一定不相等
        // 2.如果两个都是数值，并且是同一个值，那么相等；如果其中至少一个是NaN，那么不相等。（判断一个值是否是NaN，只能使用isNaN( ) 来判断）
        // 3.如果两个都是字符串，每个位置的字符都一样，那么相等，否则不相等。
        // 4.如果两个值都是true，或是false，那么相等
        // 5.如果两个值都引用同一个对象或是函数，那么相等，否则不相等
        // 6.如果两个值都是null，或是undefined，那么相等
    </script>
</head>
<body>
    
</body>
</html>